summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2022-12-25 20:30:21 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2022-12-29 00:46:54 +0100
commit59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f (patch)
tree6bdae0197c525d6706ce83941aaf74f295a33922
parentbsd: Use std::span for read payloads (diff)
downloadyuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar.gz
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar.bz2
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar.lz
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar.xz
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.tar.zst
yuzu-59c0f85407d1d5d80fb88e5a6b0bab8d1abf438f.zip
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp2
-rw-r--r--src/core/hle/kernel/hle_ipc.h5
-rw-r--r--src/core/hle/service/glue/arp.cpp3
3 files changed, 6 insertions, 4 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 9bc72da02..36cf750de 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -325,7 +325,7 @@ Result HLERequestContext::WriteToOutgoingCommandBuffer(KThread& requesting_threa
return ResultSuccess;
}
-std::vector<u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const {
+std::vector<u8> HLERequestContext::ReadBufferCopy(std::size_t buffer_index) const {
const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
BufferDescriptorA()[buffer_index].Size()};
if (is_buffer_a) {
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 2242ff922..27f9628c7 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -271,9 +271,10 @@ public:
return domain_message_header.has_value();
}
- /// Helper function to read a buffer using the appropriate buffer descriptor
- [[nodiscard]] std::vector<u8> ReadBuffer(std::size_t buffer_index = 0) const;
+ /// Helper function to read a copy of a buffer using the appropriate buffer descriptor
+ [[nodiscard]] std::vector<u8> ReadBufferCopy(std::size_t buffer_index = 0) const;
+ /// Helper function to get a span of a buffer using the appropriate buffer descriptor
[[nodiscard]] std::span<const u8> ReadBufferSpan(std::size_t buffer_index = 0) const;
/// Helper function to write a buffer using the appropriate buffer descriptor
diff --git a/src/core/hle/service/glue/arp.cpp b/src/core/hle/service/glue/arp.cpp
index 49b6d45fe..ce21b69e3 100644
--- a/src/core/hle/service/glue/arp.cpp
+++ b/src/core/hle/service/glue/arp.cpp
@@ -228,7 +228,8 @@ private:
return;
}
- control = ctx.ReadBuffer();
+ // TODO: Can this be a span?
+ control = ctx.ReadBufferCopy();
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);